1. Field of Invention
This invention pertains to method and apparatus for locating selected blocks of data on an information storage medium, and particularly to such method for locating blocks of data stored in streaming or "serpentine" fashion on magnetic tape.
2. Related Art and Other Considerations
For several decades magnetic tape drives have been employed as peripheral devices for storage (e.g., back-up) for computer and data processing systems. In one type of magnetic tape drive, known as a streaming or serpentine drive, tape is horizontally moved past a head having at least one write element (e.g., a transducer or "gap"). As the tape moves past the head in a forward direction, a track is recorded/read parallel to the direction of movement of the tape (e.g., horizontal tracks). When the head encounters an end of the tape, the position of head (and consequentially the write element) is changed relative to the width of the tape. The tape is then moved past the head in a reverse direction, with another track then being recorded. Recording continues in similar manner for a plurality of track positions located across the width of the tape. The number of tracks is dependent upon characteristics of the head and the width of the tape, there being as many as forty tracks on tapes handled by some tape drives.
User data is received by the tape drive from the computer or data processing system. The user data is formatted (e.g., by a formatter of the drive) into a sequence of data blocks. Typically, each data block contains not only an allocated portion of the user data, but additional information such as a preamble, data block header, and a postamble (including, e.g., error correction information). The data block header in turn includes a block number or block address which is assigned in consecutive order of generation by the formatter. The data blocks are then recorded on the tape in sequential manner such that, upon reading of the tape, the user data can be recovered in the order in which they were recorded (i.e., in order of the data block numbers).
In many instances it is desirable to move the head so that a read element also provided on the head is positioned to read a specified data block (usually specified by block number). This can be crudely done by starting at the beginning of the first recorded track and reading the entire tape until the specified block is read. For most applications, such a sequential search is unacceptably slow.
U.S. Pat. No. 4,858,039 to Mintzlaff (incorporated herein by reference) purports to locate a selected block of data by first moving the head to the track in which the selected block supposedly resides, and then conducting a block-by-block search on that track until the selected block is found. To locate the proper track, a magnetic head is moved substantially incrementally vertically from one data track to another; at each vertical increment reading a block number encountered on the track after vertical movement; and, comparing the block number so read to the block number of the desired data block. For successive vertical moves, Mintzlaff examines former and current distances from the desired data block to determine when the head should be over a track that contains the desired data block.
Tandberg Data A/S has espoused QIC 92-70 (Feb. 10, 1993) as a proposal for purportedly enabling faster seeking of the end of recording (EOR) on a magnetic tape. According to QIC 92-70, four identical "ID frames" are recorded as the first four flames on track set 0. Each ID frame comprises ID blocks and ECC blocks. Each ID block contains a table which includes such values as the track set number of end of recording; the end of recording position in inches from BOT; the track set number of an APPEND point; and, the APPEND point in inches from BOT. The ID frames are updated after each record operation. Thus, QIC 92-70 requires a splicing operation upstream from user data each time the ID frames are updated. A splicing operation means that new data will be recorded in the ID frames. Care must be taken that this splicing operation does not encroach into the first block of user data.